At present, the popular virtualization technology VMM (Virtual machine monitor) provides a virtual abstraction layer between hardware and operating system. VMM is also known as the host operating system. A virtual machine (VM), running on VMM, is also called a guest operating system. These VMs can be regarded as isolated guest operating system, which can share hardware resources. VMM allows multiple isolated virtual machines running on a single host, thus a large number of virtual machines can be installed on a server. Each virtual machine is logically independent, and it can be assigned a certain percentage of host memory and processing power. Thus a virtual machine can be easily distinguished from other virtual machines, and can even be distinguished from the host on which the virtual machine is installed. For network users, the virtual machine itself is a separate addressable computer system. The virtual machine can have a variety of applications. It can be used as another server on the network for software or hardware testing, and also as main computer systems for thin client, etc. There are other advantages of the virtual machine, such as easy to create and delete, and able to improve hardware server utilization. Because of the flexibility and powerful capabilities of the virtual machine, it has been widely used. Many organizations install ten or even hundreds of virtual machines on original physical servers, which makes the number of computer systems within the organization tenfold or even a hundredfold expansion. The way to manage a large number of virtual machines in a distributed network environment, allocate and schedule virtual machine resources centrally, and provision reliable virtual computing resources for the organization's business needs, is the key to use virtual machines effectively and increase the value of the virtual machines.
In the service-oriented distributed environment, virtual machines and associated infrastructure resources are required to be provisioned as a service (here associated infrastructures refers to servers, network devices and storage devices required to run virtual machine instances). Virtual machine and related infrastructure resources are the resources required to perform user services, and they can also be called business resources. In order to provision virtual machine and related infrastructure resources as a service, the resources need to be encapsulated as services and managed, in order to achieve mapping between resource services and real resources. In traditional service-oriented architecture (SOA), the domain is an important concept of distributed deployment. The concept describes a complete runtime configuration, potentially being deployed to a series of interconnected running nodes. Domain is so flexible that it can be very small or very large. A small domain may be in an IDE (Integrated Development Environment) of test environment; medium-sized domain may be a single server or small cluster, to support a single application; large domain can describe all the services of a department or company. The traditional domain services described generally refers to a variety of application business services; hardware resources are infrastructure on which application business services run. How to describe and manage virtual machines and related infrastructure resources through domain and component, and provision virtual machines and related resources as services, is a primary problem to solve for provisioning virtual machines and related resources in a service-oriented distributed environment.
In a service-oriented distributed computing environment, there will be concurrent requests access to the virtual machine. In order to avoid resource usage conflicts, protect core resources, and ensure a reliable provision of resources, distributed transaction processing is needed. A transaction is a basic element used to build a reliable application, and to ensure that all involved parties have been able to reach an agreement with output result. When the application covers a plurality of distributed subsystems, or the application is composed of a plurality of separate components, the transactions can help the application handle failures in each separate block clearly. Traditionally, transaction processing technology is mainly used for database system. However, with the progress of computer science and technology, transaction processing concept has been introduced more widely into distributed network computing environment. Thus the field of distributed transaction processing emerges. The distributed Transaction means a transaction may involve multiple data storage items, each item based on the blocks (a LUN (logical unit number) or a group of LUNs), files (local or remote file system) or relational (database) operations. It is a distributed sequence of operations, with the data operated being distributed on different websites in the network, in order to access data storage of the respective website. When an application has a unique function to access or update data in multiple transactional resources, it should take advantage of distributed transaction, where the application moves data from one database to another, requiring a distributed transaction. The X/Open organization define the reference model of Distributed Transaction Processing (DTP). How to control service request transaction for virtual machines and related resources through distributed transaction processing system, and to ensure reliable provision of virtual machines, is another important issue to be resolved.
For distributed transaction processing, many related methods are proposed. Such as patents “transaction management (US 2009/0282006 A1)” disclosed a transaction management system for optimizing storage and document management, which is implemented by optimizing storage transaction and related documentation preview, and provides a search capability to quickly locate transaction. Patent “Distributed transaction processing control (US 2005/0228834 A1)” presents a distributed transaction processing system including master and slave servers, the master server and slave server creates log files to record the transaction process, the log files are stored in the shared disk. Patent “Distributed transaction processing system (U.S. Pat. No. 7,661,106 B1)” discloses a distributed transaction processing system, wherein an automated processing application receives transaction request, produces operation requests, and sends operation requests to the service application; it then receives response from service application, generates transaction response based on received response, and returns to the requestor. These methods are generally concerned with the transaction processing for business service request. However, they do not refer to controlling the virtual and physical device resources through transaction, in particular not on scheduling, routing and accessing to the virtual and physical device resources by combining transaction processing and domain service.
Thus, in order to solve the above problems, it is necessary to provide the resource provision management domain and the resource provision management component to manage resources provision respectively, wherein the resource provision management component is used to manage the virtual machine provision, and resource provision management domain is used to manage provision of the set of resources (the set of resources comprises server, storage, and network resources related to running virtual machines above). The said domain and component further combines distributed transaction processing method to control service request transaction for virtual machines and associated resources, provision virtual machine and associated resources, and control the whole process of implementation of service request from the beginning to the end.